import unittest
from test import test_01, test_02

# TODO TestLoader
# unittest.defaultTestLoader 默认的加载器对象
# TODO loaderTestsFromTestCase
'''
# 第一种用法，创建一个加载器对象，加载测试类
loader = unittest.TestLoader()
# 参数：测试类
loader1 = loader.loadTestsFromTestCase(test_01.Demo1TestCase)
loader2 = loader.loadTestsFromTestCase(test_02.Demo2TestCase)
# 第二种用法，
loader1 = unittest.defaultTestLoader.loadTestsFromTestCase(test_01.Demo1TestCase)
loader2 = unittest.defaultTestLoader.loadTestsFromTestCase(test_02.Demo2TestCase)
'''

# TODO loadTestsFromName,参数为字符串类型并为导包导模块路径（不用import或者from导入）
'''
# 模块名
loader1 = unittest.defaultTestLoader.loadTestsFromName('test.test_01')
# 类名
loader2 = unittest.defaultTestLoader.loadTestsFromName('test.test_01.Demo1TestCase')
# 方法名
loader1 = unittest.defaultTestLoader.loadTestsFromName('test.test_01.Demo1TestCase.test01')
loader2 = unittest.defaultTestLoader.loadTestsFromName('test.test_02.Demo2TestCase.test_a')
'''

# TODO loadTestsFromNames
'''
l1 = ['test.test_01.Demo1TestCase.test01', 'test.test_02.Demo2TestCase.test_b']
loader1 = unittest.defaultTestLoader.loadTestsFromNames(l1)
'''

# TODO loadTestFromeModule 参数为模块名（需要用import或者from导包导模块）
'''
# 参数为模块名
loader1 = unittest.defaultTestLoader.loadTestsFromModule(test_01)
loader2 = unittest.defaultTestLoader.loadTestsFromModule(test_02)
'''

# TODO discover 参数1：加载模块的路径（字符串类型）；参数2：加载模块名的规则；返回的是一个suite（不用另外创建suite测试套件）
loader1 = unittest.defaultTestLoader.discover('./test', pattern='test*.py')

# suite 创建一个测试套件，收集测试类
# suite = unittest.TestSuite()
# suite.addTest(loader1) # addTest
# suite.addTest(loader2) # addTest
# suite.addTests([loader1, loader2]) # addTests

# runner 创建执行器，执行测试类
runner = unittest.TextTestRunner(verbosity=2)
# runner.run(suite)
runner.run(loader1)
